Прямі методи розв’язування систем лінійних алгебраїчних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Автоматики і телемеханіки

Інформація про роботу

Рік:
2005
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Алгоритмічні основи криптології
Група:
ІБ – 41

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НУ”ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА АВТОМАТИКИ І ТЕЛЕМЕХАНІКИ ЗВІТ про виконання лабораторної роботи№1 з дисципліни „Алгоритмічні основи криптології” на тему: “Прямі методи розв’язування систем лінійних алгебраїчних рівнянь” Мета роботи: вивчити найпоширеніші прямі методи розв’язку систем лінійних алгебраїчних рівнянь, навчитись розв’язувати на ЕОМ системи алгебраїчних рівнянь, провести порівняльний аналіз розглянутих методів. Завдання: написати програму на мові програмування Сі яка б розв’язувала систему лінійних алгебраїчних рівнянь методом LU – розкладу. 8.3*х(1) + (2.62+s)*x(2) + 4.1*x(3) + 1.9*x(4) = -10.65+B 3.92*x(1) + 8.45*x(2) + (7.78-s)*x(3) +2.46*x(4) = 12.21 3.77*x(1) + (7.21+s)*x(2) + 8.04*x(3) + 2.28*x(4) = 15.45 – B 2.21*x(1) + (3.65-s)*x(2) + 1.69*x(3) + 6.99*x(4) = -8.35 де s = 0.2*k , B = 0.2*p k=0, p=0;  Повний текст програми. #include<stdio.h> #include<math.h> #define n 4 main() { int k,i,j,m; float l[n+1][n+1],u[n+1][n+1],y[n+1],x[n+1]; float s1=0,s2=0,s3=0, b[n+1], a[n+1][n+1];; for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%f",&a[i][j]); for(i=1;i<=n;i++) scanf("%f", &b[i]); for (i=1;i<=n;i++) l[i][1]=a[i][1]; for (j=2;j<=n;j++) u[1][j]=a[1][j]/a[1][1]; k=1; do {k++; for (i=k;i<=n;i++) {for (m=1;m<=(k-1);m++) s1+=(l[i][m]*u[m][k]); l[i][k]=a[i][k]-s1; s1=0;} for (j=k+1;j<=n;j++) {for (m=1;m<=(k-1);m++) s2+=l[k][m]*u[m][j]; u[k][j]=(a[k][j]-s2)/l[k][k]; s2=0;} } while (k!=n); y[1]=b[1]/l[1][1]; for (i=2;i<=n;i++) {for (m=1;m<=(i-1);m++) s3+=(l[i][m]*y[m]); y[i]=(b[i]-s3)/l[i][i]; s3=0; } x[n]=y[n]; printf("%1.2f\n",x[n]); for (i=n-1;i>=1;i--) {for (m=i+1;m<=n;m++) s3+=u[i][m]*x[m]; x[i]=y[i]-s3;s3=0; printf("%1.2f\n", x[i]);} for (i=1;i<=n;i++) {for (j=1;j<=n;j++) s1+=a[i][j]*x[j]; printf("\ns=%f",s1); s1=0;} } Результати обчислень. Введене рівняння: 8.3 2.62 4.1 1.9 3.92 8.45 7.78 2.46 3.77 7.21 8.04 2.28 2.21 3.65 1.69 6.99 -10.65 12.21 15.45 -8.35 Розв’язки та перевірка: Х1=-0.74; Х2=4.60; Х3=-1.18; Х4=-3.01; S1=-10.650002 S2=12.209998 S3=15.450001 S4=-8.350000 Висновок: Розв’язання систем лінійних алгебраїчних рівнянь методом Гауса або LU - розкладу можна досить легко реалізувати на ЕОМ за допомогою програми в середовищі Сі. Основна перевага методу LU – розкладу полягає в можливості простішого одержання розв’язку для різних векторів b системи лінійних рівнянь. Розв’язання таких систем на ЕОМ є дуже актуальним, оскільки цей процес є набагато легшим та короткотривалішим ніж розв’язання систем лінійних алгебраїчних рівнянь вручну.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини